Split-Ordered Lists: Lock-Free Extensible Hash Tables (a summary)
نویسنده
چکیده
The hash table is a common data structure for applications requiring constant time insert, delete and find of certain items. The basic idea is to use an array of buckets, where each bucket stores a list of items. A hash function is used to determine which bucket a certain item belongs to. Finding or deleting a specific item amounts to a linear search in a bucket list pointed to by the hash function, which can be considered a constant time operation if the list is small. When the number of items grows, constant time operations cannot be guaranteed, so the hash table needs to be extended. A common way of doing this, is to increase the size of the bucket array and redistribute the items among the new buckets. In the context of concurrent programming, the operations find, delete and resize requires special care since several parallel threads may be accessing the data structure simultaneously. Previous work on concurrent hash tables have used lock-based schemes to allow safe operation on individual buckets, or sets of buckets. These implementations have shown reasonable performance, but they do not scale well for increasing number of concurrent accesses. Also, in order to maintain the average constant time complexity, the lock-based schemes tend to be very complex, especially for the resize operation.
منابع مشابه
Split-Ordered Lists - Lock-free Resizable Hash Tables
We present the first lock-free implementation of an extensible hash table running on current architectures. Our algorithm provides concurrent insert, delete, and search operations with an expected O(1) cost. It consists of very simple code, easily implementable using only load, store, and compare-and-swap operations. The new mathematical structure at the core of our algorithm is recursive split...
متن کاملPractical Non-blocking Unordered Lists
This paper introduces new lock-free and wait-free unordered linked list algorithms. The composition of these algorithms according to the fast-pathslow-path methodology, a recently devised approach to creating fast wait-free data structures, is nontrivial, suggesting limitations to the applicability of the fast-path-slow-path methodology. The list algorithms introduced in this paper are shown to...
متن کاملOn Composability, Efficient Design and Memory Reclamation of Lock-free Data Structures
The transition to multicore processors has brought synchronization, a fundamental challenge in computer science, into focus. In looking for solutions to the problem, interest has developed in the lock-free approach, which has been proven to achieve several advantages over the traditional mutual exclusion approach. This thesis studies challenges in interprocess synchronization in shared memory m...
متن کاملcs . D C ] 1 3 A pr 2 00 4 Almost Wait - free Dynamic Hash Tables – 1 Efficient Almost Wait - free Parallel Accessible Dynamic Hash Tables
We present an efficient almost wait-free algorithm for parallel accessible hash tables with open addressing, which promises more robust performance and reliability than conventional lock-based implementations. For a single processor architecture our solution is as efficient as sequential hash tables. On a multiprocessor architecture this is also the case when all processors have comparable spee...
متن کاملBlocking and non-blocking concurrent hash tables in multi-core systems
Widespread use of multi-core systems demand highly parallel applications and algorithms in everyday computing. Parallel data structures, which are basic building blocks of concurrent algorithms, are hard to design in a way that they remain both fast and simple. By using mutual exclusion they can be implemented with little effort, but blocking synchronization has many unfavorable properties, suc...
متن کامل